# include <iostream>

using namespace std;

/*
数组案例
int arr[10] = {11, 3, 5, 7, 9, 2, 5, 6, 8, 10};

用户提供数据 5 对应下标位置 2
用户提供数据 20 反馈数据 -1 ，采用非法下标方式告知数据未找到
*/

int main(int argc, char const *argv[])
{
    
    /**
     * 搜索数据的目标 int 类型数组，容量为 10
     */
    int arr[10] = {11, 3, 5, 7, 9, 2, 5, 6, 8, 10};

    /**
     * 搜索的目标元素
     */
    int target = 5;

    /*
    1. 定义一个变量 index ，用于储存目标元素在数组中第一次出现的下标位置
    index 可以作为【标记 + 数据记录】两个功能的变量。

    如果当前数据找到，index 的储存数据结果一定是大于等于 0
    如果按照题目要求，目标数据未找到，index 对应的是 -1 
    直接将 inddex 初始化为 -1 ，利用数据的互质性质进行后续条件判断
    在 for 循环中，找到目标元素，index 重新赋值一定不为 -1 ，如果没有
    找到目标元素，index 依然是 -1 ，可以条件标记。
    */
   int index = -1;

   /*
   2. 利用 for 循环遍历整个数组，如果找到了和当前目标数组 target 一直的元素
   index 赋值对应的下标位置，同时利用 break 跳出循环结构
   */
    for (int i = 0; i < 10; i++)
    {
        if(target == arr[i])
        {
            index = i;
            break;
        }
    }

    /*
    最终展示
    */
   if (index > -1)
   {
    cout << "目标元素" << target
         << ", 在数组中第一次出现下标的位置 : " << index << endl;
   }
   else
   {
        cout << "目标元素未找到!! Target Not Found!" << endl;
   }

    return 0;
}
